ROS2 logging
Table of Content
ROS2 logging#
ROS2 logging control and config
config#
environment variables#
- RCUTILS_COLORIZED_OUTPUT
- ROS_LOG_DIR
- RCUTILS_LOGGING_USE_STDOUT
- RCUTILS_LOGGING_BUFFERED_STREAM
- RCUTILS_CONSOLE_OUTPUT_FORMAT
RCUTILS_CONSOLE_OUTPUT_FORMAT#
export RCUTILS_CONSOLE_OUTPUT_FORMAT="[{severity} {time}] [{name}]: {message} ({function_name}() at {file_name}:{line_number})"
RCUTILS_COLORIZED_OUTPUT#
colorize logging
Add environment variable to .bashrc
export RCUTILS_COLORIZED_OUTPUT=1
Control#
throttled#
throttled
node.get_logger().error("log every sec", throttle_duration_sec=1)
one time#
log only first time
node.get_logger().info(f'log only once', once=True)
skip#
log, skip first time
node.get_logger().info(f'log only once', skip_first=True)
logging control demo#
- control node log level
- Set logging format
very simple node with logging
node.launch.py
log external config
ros2 run some_package some_ros_executable --ros-args --log-config-file some_log.config
for know spdlog not support external config